package com.youlu.campus.admin.auth.entity;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.youlu.campus.base.base.EntityBase;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.Date;

/**
 * 用户实体实体类
 *
 * @author: tommy
 * @date: 2020/11/24 15:00
 */
@Data
@Document(collection = "system_user")
public class SystemUser extends EntityBase {
    /**
     * 账号
     */
    @NotEmpty
    private String loginName;

    /**
     * 企业域名 冗余
     */
    private String domain;

    @JsonIgnore
    /**
     * 注册手机号 只有超级管理员拥有
     */
    private String regMobile;

    @NotEmpty
    @JsonIgnore
    /**
     * 密码
     */
    private String encPwd;

    @JsonIgnore
    /**
     * salt
     */
    private String salt;

    @NotEmpty
    /**
     * 真实姓名
     */
    private String realName;

    /**
     * 昵称
     */
    private String nickName;

    /**
     * 用户状态，1.offline 2.online 3.suspend
     */
    private Integer status;

    /**
     * 手机号 企业管理员与regMobile同步
     */
    private String mobile;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 是否可用 *废弃字段
     */
    private Boolean available;

    /**
     * 是否有License
     */
    @JsonIgnore
    private boolean hasLicense;

    /**
     * 用户接受过引导的版本
     */
    @JsonIgnore
    private Integer bootstrapVersion;

    /**
     * 用户头像URL
     */
    private String headUrl;

    /**
     * 最后登陆时间
     */
    private Date lastLoginTime;

    /**
     * 角色名
     */
    private String roleName;

    /**
     * 角色ID
     */
    private String roleId;

    /**
     * 是否封禁，true:封禁,false:不封禁
     */
    private Boolean forbidden = Boolean.FALSE;

    private Boolean firstLogin = Boolean.TRUE;

    private Date firstLoginTime;
    /**
     * 密码重试次数
     */
    private Integer passwordRetryNum = 0;

    private String pwdBack;

}
